#ifndef __POOL_H__
#define __POOL_H__

namespace pool
{
/**
* Simple pool to store single items.
*/
template <class T, int max_size=100000>
class stack_pool {
    T* pStorage;//or just use vector?
    int top;
    std::stack<int> released;
    public:
    int insert(T& node) {
        
    };
    bool resize(size_t newsize);
    void free(int p);
    // Input/Output
    void dump();
    void load();
};

/**
* Pool to store sequences.
*/
class heap_pool {
    std::multimap<int,int> segment;
    public:
    
};

/**
* 交错 Pool 
*/ 
class stagger_pool {
    public:
};

}; /* pool */


#endif /* __POOL_H__ */

